#include<stdio.h>

#include<string.h> // 字符串操作函数和内存操作函数
//strlen:计算字符串长度    strlen( s )

//strcmp：字符串比较函数   strcmp( s1 , s2 )

//strncmp；比较n个字符   strncmp( s1 , s2 , n )

//自动在尾部加  \0

// strcpy: 字符串拷贝     strcpy( s2 , s );//把  s  指向的字符串  拷贝 给 s2

// strncpy:拷贝 n 个字符    strncpy(s2 , s , sizeof(s2)-1)     
                        // (sizeof(s2)-1) 是为了保证一定不会溢出，同时留个位置给 \0

//strcat: 字符串拼接            // 把 s 拼到 s2 后面

//strncat：拼接 n 个字符   strncat(s2,s, sizeof (s2) - 1  - strlen(s2) );  
//                     sizeof(s2)-1 是代表数组本身能有多少个位置 - strlen(s2) 是减去现在s2里面的字符串


// strstr：字符串匹配函数   


// strtok：字符串切割函数




int main()
{
    // char s[] = "hello";
    // char s2[] = "helloworld";

    // if (strncmp(s,s2,5)==0)
    // {
    //     printf("字符串相等!\n");
    // }
    
    
    // printf("%d\n",strcmp(s,s2));
    
    
    
    // printf("%ld\n",strlen(s));  //始终比 sizeof 少一个 \0  
    
    // printf("%ld\n",sizeof(s));
    
    
    // const char *s= "hello,jack";
    // char s2[3] = {0};
    
    // //不会管空间是否足够拷贝  会有内存访问越界的风险
    
    // strncpy(s2,s,sizeof(s2)-1);//把s指向的字符串拷贝给s2
    
    // printf("%s\n",s2);

    // char s[] = "hello";
    // char s2[20] = "world";
    // strncat(s2,s, sizeof (s2) - 1  - strlen(s2) );  // 把 s 拼到 s2 后面



    // printf("%s\n",s2);
    // char s1[] = "helloworld";
    // char s2[] = "ell";
    // //  如果找到，返回s2 在s1 中的 首地址  
    // //  如果没找到，返回空指针
    // //  用来寻找一个字符串的子串

    // char* dest = strstr(s1,s2);  // 在 s1 里寻找 s2
    
    // if (dest)//dest不为空
    // {
    //     printf("%s\n",dest);
    // }
    // else
    // {
    //     printf("没找到");
    // }
    


   
   
    // 分隔符  用来分割字符串
    char s[] = "zhangsan,lisi.wangwu, .sad";
    char *p = strtok(s,",.");
    while(p != NULL)
    {
        printf("%s\n",p);
        p = strtok(NULL,",.");
    }
    //strtok会修改原字符串，把分隔符变成 \0   

    // delim：分隔符的集合   “ ” 放在双引号里面
    // 返回值指针：切割下来的字符串的首地址
    // char *p = strtok(s,",.");
    // printf("%s\n",p);
    
    // // 想切割之前的字符串，传空指针
    
    // p = strtok(NULL,",.");
    // printf("%s\n",p);
    
    // p = strtok(NULL,",.");
    // printf("%s\n",p);
    // //当没有可以分割的字符串是，返回空指针
    
    
    
    return 0;
}